(0) Obligation:

Clauses:

insert(X, void, tree(X, void, void)).
insert(X, tree(X, Left, Right), tree(X, Left, Right)).
insert(X, tree(Y, Left, Right), tree(Y, Left1, Right)) :- ','(less(X, Y), insert(X, Left, Left1)).
insert(X, tree(Y, Left, Right), tree(Y, Left, Right1)) :- ','(less(Y, X), insert(X, Right, Right1)).
less(0, s(X1)).
less(s(X), s(Y)) :- less(X, Y).

Query: insert(g,a,g)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

lessD(s(X1)) :- lessD(X1).
pB(X1, X2) :- lessD(X1).
pB(X1, X2) :- ','(lesscD(X1), insertA(s(X1), X2, void)).
pC(X1, X2) :- lessD(X1).
pC(X1, X2) :- ','(lesscD(X1), insertA(X1, X2, void)).
lessF(s(X1), s(X2)) :- lessF(X1, X2).
insertA(s(X1), tree(s(X1), X2, void), tree(s(X1), void, void)) :- pB(X1, X2).
insertA(X1, tree(X1, void, X2), tree(X1, void, void)) :- pC(X1, X2).
insertA(s(X1), tree(s(X1), void, X2), tree(s(X1), void, void)) :- pB(X1, X2).
insertA(s(X1), tree(s(X1), X2, void), tree(s(X1), void, void)) :- pB(X1, X2).
insertA(X1, tree(X1, void, X2), tree(X1, void, void)) :- pC(X1, X2).
insertA(s(X1), tree(s(X1), void, X2), tree(s(X1), void, void)) :- pB(X1, X2).
insertA(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) :- lessD(X1).
insertA(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) :- ','(lesscD(X1), insertA(s(X1), X2, X4)).
insertA(X1, tree(X1, X2, X3), tree(X1, X2, X4)) :- lessD(X1).
insertA(X1, tree(X1, X2, X3), tree(X1, X2, X4)) :- ','(lesscD(X1), insertA(X1, X3, X4)).
insertA(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) :- lessD(X1).
insertA(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) :- ','(lesscD(X1), insertA(s(X1), X3, X4)).
insertA(0, tree(s(X1), X2, X3), tree(s(X1), X4, X3)) :- insertA(0, X2, X4).
insertA(s(s(s(s(s(s(s(s(X1)))))))), tree(s(s(s(s(s(s(s(s(X2)))))))), X3, X4), tree(s(s(s(s(s(s(s(s(X2)))))))), X5, X4)) :- lessF(X1, X2).
insertA(s(X1), tree(s(X2), X3, X4), tree(s(X2), X5, X4)) :- ','(lesscE(X1, X2), insertA(s(X1), X3, X5)).
insertA(X1, tree(X2, X3, X4), tree(X2, X3, X5)) :- lessF(X2, X1).
insertA(X1, tree(X2, X3, X4), tree(X2, X3, X5)) :- ','(lesscF(X2, X1), insertA(X1, X4, X5)).
insertA(s(X1), tree(0, X2, X3), tree(0, X2, X4)) :- insertA(s(X1), X3, X4).
insertA(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) :- lessF(X2, X1).
insertA(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) :- ','(lesscF(X2, X1), insertA(s(X1), X4, X5)).

Clauses:

insertcA(X1, void, tree(X1, void, void)).
insertcA(X1, tree(X1, void, void), tree(X1, void, void)).
insertcA(s(X1), tree(s(X1), X2, void), tree(s(X1), void, void)) :- qcB(X1, X2).
insertcA(X1, tree(X1, void, X2), tree(X1, void, void)) :- qcC(X1, X2).
insertcA(s(X1), tree(s(X1), void, X2), tree(s(X1), void, void)) :- qcB(X1, X2).
insertcA(s(X1), tree(s(X1), X2, void), tree(s(X1), void, void)) :- qcB(X1, X2).
insertcA(X1, tree(X1, void, X2), tree(X1, void, void)) :- qcC(X1, X2).
insertcA(s(X1), tree(s(X1), void, X2), tree(s(X1), void, void)) :- qcB(X1, X2).
insertcA(X1, tree(X1, X2, X3), tree(X1, X2, X3)).
insertcA(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) :- ','(lesscD(X1), insertcA(s(X1), X2, X4)).
insertcA(X1, tree(X1, X2, X3), tree(X1, X2, X4)) :- ','(lesscD(X1), insertcA(X1, X3, X4)).
insertcA(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) :- ','(lesscD(X1), insertcA(s(X1), X3, X4)).
insertcA(0, tree(s(X1), X2, X3), tree(s(X1), X4, X3)) :- insertcA(0, X2, X4).
insertcA(s(X1), tree(s(X2), X3, X4), tree(s(X2), X5, X4)) :- ','(lesscE(X1, X2), insertcA(s(X1), X3, X5)).
insertcA(X1, tree(X2, X3, X4), tree(X2, X3, X5)) :- ','(lesscF(X2, X1), insertcA(X1, X4, X5)).
insertcA(s(X1), tree(0, X2, X3), tree(0, X2, X4)) :- insertcA(s(X1), X3, X4).
insertcA(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) :- ','(lesscF(X2, X1), insertcA(s(X1), X4, X5)).
lesscD(s(X1)) :- lesscD(X1).
qcB(X1, X2) :- ','(lesscD(X1), insertcA(s(X1), X2, void)).
qcC(X1, X2) :- ','(lesscD(X1), insertcA(X1, X2, void)).
lesscF(0, s(X1)).
lesscF(s(X1), s(X2)) :- lesscF(X1, X2).
lesscE(0, s(X1)).
lesscE(s(0), s(s(X1))).
lesscE(s(s(0)), s(s(s(X1)))).
lesscE(s(s(s(0))), s(s(s(s(X1))))).
lesscE(s(s(s(s(0)))), s(s(s(s(s(X1)))))).
lesscE(s(s(s(s(s(0))))), s(s(s(s(s(s(X1))))))).
lesscE(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1)))))))).
lesscE(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2)))))))) :- lesscF(X1, X2).

Afs:

insertA(x1, x2, x3)  =  insertA(x1, x3)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
insertA_in: (b,f,b)
pB_in: (b,f)
lessD_in: (b)
lesscD_in: (b)
pC_in: (b,f)
lessF_in: (b,b)
lesscE_in: (b,b)
lesscF_in: (b,b)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

INSERTA_IN_GAG(s(X1), tree(s(X1), X2, void), tree(s(X1), void, void)) → U9_GAG(X1, X2, pB_in_ga(X1, X2))
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, void), tree(s(X1), void, void)) → PB_IN_GA(X1, X2)
PB_IN_GA(X1, X2) → U2_GA(X1, X2, lessD_in_g(X1))
PB_IN_GA(X1, X2) → LESSD_IN_G(X1)
LESSD_IN_G(s(X1)) → U1_G(X1, lessD_in_g(X1))
LESSD_IN_G(s(X1)) → LESSD_IN_G(X1)
PB_IN_GA(X1, X2) → U3_GA(X1, X2, lesscD_in_g(X1))
U3_GA(X1, X2, lesscD_out_g(X1)) → U4_GA(X1, X2, insertA_in_gag(s(X1), X2, void))
U3_GA(X1, X2, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X2, void)
INSERTA_IN_GAG(X1, tree(X1, void, X2), tree(X1, void, void)) → U10_GAG(X1, X2, pC_in_ga(X1, X2))
INSERTA_IN_GAG(X1, tree(X1, void, X2), tree(X1, void, void)) → PC_IN_GA(X1, X2)
PC_IN_GA(X1, X2) → U5_GA(X1, X2, lessD_in_g(X1))
PC_IN_GA(X1, X2) → LESSD_IN_G(X1)
PC_IN_GA(X1, X2) → U6_GA(X1, X2, lesscD_in_g(X1))
U6_GA(X1, X2, lesscD_out_g(X1)) → U7_GA(X1, X2, insertA_in_gag(X1, X2, void))
U6_GA(X1, X2, lesscD_out_g(X1)) → INSERTA_IN_GAG(X1, X2, void)
INSERTA_IN_GAG(s(X1), tree(s(X1), void, X2), tree(s(X1), void, void)) → U11_GAG(X1, X2, pB_in_ga(X1, X2))
INSERTA_IN_GAG(s(X1), tree(s(X1), void, X2), tree(s(X1), void, void)) → PB_IN_GA(X1, X2)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → U12_GAG(X1, X2, X3, X4, lessD_in_g(X1))
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → LESSD_IN_G(X1)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → U13_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U13_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → U14_GAG(X1, X2, X3, X4, insertA_in_gag(s(X1), X2, X4))
U13_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X2, X4)
INSERTA_IN_GAG(X1, tree(X1, X2, X3), tree(X1, X2, X4)) → U15_GAG(X1, X2, X3, X4, lessD_in_g(X1))
INSERTA_IN_GAG(X1, tree(X1, X2, X3), tree(X1, X2, X4)) → LESSD_IN_G(X1)
INSERTA_IN_GAG(X1, tree(X1, X2, X3), tree(X1, X2, X4)) → U16_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U16_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → U17_GAG(X1, X2, X3, X4, insertA_in_gag(X1, X3, X4))
U16_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(X1, X3, X4)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) → U18_GAG(X1, X2, X3, X4, lessD_in_g(X1))
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) → LESSD_IN_G(X1)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) → U19_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U19_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → U20_GAG(X1, X2, X3, X4, insertA_in_gag(s(X1), X3, X4))
U19_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X3, X4)
INSERTA_IN_GAG(0, tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → U21_GAG(X1, X2, X3, X4, insertA_in_gag(0, X2, X4))
INSERTA_IN_GAG(0, tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → INSERTA_IN_GAG(0, X2, X4)
INSERTA_IN_GAG(s(s(s(s(s(s(s(s(X1)))))))), tree(s(s(s(s(s(s(s(s(X2)))))))), X3, X4), tree(s(s(s(s(s(s(s(s(X2)))))))), X5, X4)) → U22_GAG(X1, X2, X3, X4, X5, lessF_in_gg(X1, X2))
INSERTA_IN_GAG(s(s(s(s(s(s(s(s(X1)))))))), tree(s(s(s(s(s(s(s(s(X2)))))))), X3, X4), tree(s(s(s(s(s(s(s(s(X2)))))))), X5, X4)) → LESSF_IN_GG(X1, X2)
LESSF_IN_GG(s(X1), s(X2)) → U8_GG(X1, X2, lessF_in_gg(X1, X2))
LESSF_IN_GG(s(X1), s(X2)) → LESSF_IN_GG(X1, X2)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X5, X4)) → U23_GAG(X1, X2, X3, X4, X5, lesscE_in_gg(X1, X2))
U23_GAG(X1, X2, X3, X4, X5, lesscE_out_gg(X1, X2)) → U24_GAG(X1, X2, X3, X4, X5, insertA_in_gag(s(X1), X3, X5))
U23_GAG(X1, X2, X3, X4, X5, lesscE_out_gg(X1, X2)) → INSERTA_IN_GAG(s(X1), X3, X5)
INSERTA_IN_GAG(X1, tree(X2, X3, X4), tree(X2, X3, X5)) → U25_GAG(X1, X2, X3, X4, X5, lessF_in_gg(X2, X1))
INSERTA_IN_GAG(X1, tree(X2, X3, X4), tree(X2, X3, X5)) → LESSF_IN_GG(X2, X1)
INSERTA_IN_GAG(X1, tree(X2, X3, X4), tree(X2, X3, X5)) → U26_GAG(X1, X2, X3, X4, X5, lesscF_in_gg(X2, X1))
U26_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → U27_GAG(X1, X2, X3, X4, X5, insertA_in_gag(X1, X4, X5))
U26_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(X1, X4, X5)
INSERTA_IN_GAG(s(X1), tree(0, X2, X3), tree(0, X2, X4)) → U28_GAG(X1, X2, X3, X4, insertA_in_gag(s(X1), X3, X4))
INSERTA_IN_GAG(s(X1), tree(0, X2, X3), tree(0, X2, X4)) → INSERTA_IN_GAG(s(X1), X3, X4)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) → U29_GAG(X1, X2, X3, X4, X5, lessF_in_gg(X2, X1))
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) → LESSF_IN_GG(X2, X1)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) → U30_GAG(X1, X2, X3, X4, X5, lesscF_in_gg(X2, X1))
U30_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → U31_GAG(X1, X2, X3, X4, X5, insertA_in_gag(s(X1), X4, X5))
U30_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(s(X1), X4, X5)

The TRS R consists of the following rules:

lesscD_in_g(s(X1)) → U50_g(X1, lesscD_in_g(X1))
U50_g(X1, lesscD_out_g(X1)) → lesscD_out_g(s(X1))
lesscE_in_gg(0, s(X1)) → lesscE_out_gg(0, s(X1))
lesscE_in_gg(s(0), s(s(X1))) → lesscE_out_gg(s(0), s(s(X1)))
lesscE_in_gg(s(s(0)), s(s(s(X1)))) → lesscE_out_gg(s(s(0)), s(s(s(X1))))
lesscE_in_gg(s(s(s(0))), s(s(s(s(X1))))) → lesscE_out_gg(s(s(s(0))), s(s(s(s(X1)))))
lesscE_in_gg(s(s(s(s(0)))), s(s(s(s(s(X1)))))) → lesscE_out_gg(s(s(s(s(0)))), s(s(s(s(s(X1))))))
lesscE_in_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1))))))) → lesscE_out_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1)))))))
lesscE_in_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1)))))))) → lesscE_out_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1))))))))
lesscE_in_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2)))))))) → U56_gg(X1, X2, lesscF_in_gg(X1, X2))
lesscF_in_gg(0, s(X1)) → lesscF_out_gg(0, s(X1))
lesscF_in_gg(s(X1), s(X2)) → U55_gg(X1, X2, lesscF_in_gg(X1, X2))
U55_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscF_out_gg(s(X1), s(X2))
U56_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscE_out_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2))))))))

The argument filtering Pi contains the following mapping:
insertA_in_gag(x1, x2, x3)  =  insertA_in_gag(x1, x3)
s(x1)  =  s(x1)
tree(x1, x2, x3)  =  tree(x1, x2, x3)
void  =  void
pB_in_ga(x1, x2)  =  pB_in_ga(x1)
lessD_in_g(x1)  =  lessD_in_g(x1)
lesscD_in_g(x1)  =  lesscD_in_g(x1)
U50_g(x1, x2)  =  U50_g(x1, x2)
lesscD_out_g(x1)  =  lesscD_out_g(x1)
pC_in_ga(x1, x2)  =  pC_in_ga(x1)
0  =  0
lessF_in_gg(x1, x2)  =  lessF_in_gg(x1, x2)
lesscE_in_gg(x1, x2)  =  lesscE_in_gg(x1, x2)
lesscE_out_gg(x1, x2)  =  lesscE_out_gg(x1, x2)
U56_gg(x1, x2, x3)  =  U56_gg(x1, x2, x3)
lesscF_in_gg(x1, x2)  =  lesscF_in_gg(x1, x2)
lesscF_out_gg(x1, x2)  =  lesscF_out_gg(x1, x2)
U55_gg(x1, x2, x3)  =  U55_gg(x1, x2, x3)
INSERTA_IN_GAG(x1, x2, x3)  =  INSERTA_IN_GAG(x1, x3)
U9_GAG(x1, x2, x3)  =  U9_GAG(x1, x3)
PB_IN_GA(x1, x2)  =  PB_IN_GA(x1)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
LESSD_IN_G(x1)  =  LESSD_IN_G(x1)
U1_G(x1, x2)  =  U1_G(x1, x2)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
U4_GA(x1, x2, x3)  =  U4_GA(x1, x3)
U10_GAG(x1, x2, x3)  =  U10_GAG(x1, x3)
PC_IN_GA(x1, x2)  =  PC_IN_GA(x1)
U5_GA(x1, x2, x3)  =  U5_GA(x1, x3)
U6_GA(x1, x2, x3)  =  U6_GA(x1, x3)
U7_GA(x1, x2, x3)  =  U7_GA(x1, x3)
U11_GAG(x1, x2, x3)  =  U11_GAG(x1, x3)
U12_GAG(x1, x2, x3, x4, x5)  =  U12_GAG(x1, x3, x4, x5)
U13_GAG(x1, x2, x3, x4, x5)  =  U13_GAG(x1, x3, x4, x5)
U14_GAG(x1, x2, x3, x4, x5)  =  U14_GAG(x1, x3, x4, x5)
U15_GAG(x1, x2, x3, x4, x5)  =  U15_GAG(x1, x2, x4, x5)
U16_GAG(x1, x2, x3, x4, x5)  =  U16_GAG(x1, x2, x4, x5)
U17_GAG(x1, x2, x3, x4, x5)  =  U17_GAG(x1, x2, x4, x5)
U18_GAG(x1, x2, x3, x4, x5)  =  U18_GAG(x1, x2, x4, x5)
U19_GAG(x1, x2, x3, x4, x5)  =  U19_GAG(x1, x2, x4, x5)
U20_GAG(x1, x2, x3, x4, x5)  =  U20_GAG(x1, x2, x4, x5)
U21_GAG(x1, x2, x3, x4, x5)  =  U21_GAG(x1, x3, x4, x5)
U22_GAG(x1, x2, x3, x4, x5, x6)  =  U22_GAG(x1, x2, x4, x5, x6)
LESSF_IN_GG(x1, x2)  =  LESSF_IN_GG(x1, x2)
U8_GG(x1, x2, x3)  =  U8_GG(x1, x2, x3)
U23_GAG(x1, x2, x3, x4, x5, x6)  =  U23_GAG(x1, x2, x4, x5, x6)
U24_GAG(x1, x2, x3, x4, x5, x6)  =  U24_GAG(x1, x2, x4, x5, x6)
U25_GAG(x1, x2, x3, x4, x5, x6)  =  U25_GAG(x1, x2, x3, x5, x6)
U26_GAG(x1, x2, x3, x4, x5, x6)  =  U26_GAG(x1, x2, x3, x5, x6)
U27_GAG(x1, x2, x3, x4, x5, x6)  =  U27_GAG(x1, x2, x3, x5, x6)
U28_GAG(x1, x2, x3, x4, x5)  =  U28_GAG(x1, x2, x4, x5)
U29_GAG(x1, x2, x3, x4, x5, x6)  =  U29_GAG(x1, x2, x3, x5, x6)
U30_GAG(x1, x2, x3, x4, x5, x6)  =  U30_GAG(x1, x2, x3, x5, x6)
U31_GAG(x1, x2, x3, x4, x5, x6)  =  U31_GAG(x1, x2, x3, x5, x6)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INSERTA_IN_GAG(s(X1), tree(s(X1), X2, void), tree(s(X1), void, void)) → U9_GAG(X1, X2, pB_in_ga(X1, X2))
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, void), tree(s(X1), void, void)) → PB_IN_GA(X1, X2)
PB_IN_GA(X1, X2) → U2_GA(X1, X2, lessD_in_g(X1))
PB_IN_GA(X1, X2) → LESSD_IN_G(X1)
LESSD_IN_G(s(X1)) → U1_G(X1, lessD_in_g(X1))
LESSD_IN_G(s(X1)) → LESSD_IN_G(X1)
PB_IN_GA(X1, X2) → U3_GA(X1, X2, lesscD_in_g(X1))
U3_GA(X1, X2, lesscD_out_g(X1)) → U4_GA(X1, X2, insertA_in_gag(s(X1), X2, void))
U3_GA(X1, X2, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X2, void)
INSERTA_IN_GAG(X1, tree(X1, void, X2), tree(X1, void, void)) → U10_GAG(X1, X2, pC_in_ga(X1, X2))
INSERTA_IN_GAG(X1, tree(X1, void, X2), tree(X1, void, void)) → PC_IN_GA(X1, X2)
PC_IN_GA(X1, X2) → U5_GA(X1, X2, lessD_in_g(X1))
PC_IN_GA(X1, X2) → LESSD_IN_G(X1)
PC_IN_GA(X1, X2) → U6_GA(X1, X2, lesscD_in_g(X1))
U6_GA(X1, X2, lesscD_out_g(X1)) → U7_GA(X1, X2, insertA_in_gag(X1, X2, void))
U6_GA(X1, X2, lesscD_out_g(X1)) → INSERTA_IN_GAG(X1, X2, void)
INSERTA_IN_GAG(s(X1), tree(s(X1), void, X2), tree(s(X1), void, void)) → U11_GAG(X1, X2, pB_in_ga(X1, X2))
INSERTA_IN_GAG(s(X1), tree(s(X1), void, X2), tree(s(X1), void, void)) → PB_IN_GA(X1, X2)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → U12_GAG(X1, X2, X3, X4, lessD_in_g(X1))
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → LESSD_IN_G(X1)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → U13_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U13_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → U14_GAG(X1, X2, X3, X4, insertA_in_gag(s(X1), X2, X4))
U13_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X2, X4)
INSERTA_IN_GAG(X1, tree(X1, X2, X3), tree(X1, X2, X4)) → U15_GAG(X1, X2, X3, X4, lessD_in_g(X1))
INSERTA_IN_GAG(X1, tree(X1, X2, X3), tree(X1, X2, X4)) → LESSD_IN_G(X1)
INSERTA_IN_GAG(X1, tree(X1, X2, X3), tree(X1, X2, X4)) → U16_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U16_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → U17_GAG(X1, X2, X3, X4, insertA_in_gag(X1, X3, X4))
U16_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(X1, X3, X4)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) → U18_GAG(X1, X2, X3, X4, lessD_in_g(X1))
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) → LESSD_IN_G(X1)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) → U19_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U19_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → U20_GAG(X1, X2, X3, X4, insertA_in_gag(s(X1), X3, X4))
U19_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X3, X4)
INSERTA_IN_GAG(0, tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → U21_GAG(X1, X2, X3, X4, insertA_in_gag(0, X2, X4))
INSERTA_IN_GAG(0, tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → INSERTA_IN_GAG(0, X2, X4)
INSERTA_IN_GAG(s(s(s(s(s(s(s(s(X1)))))))), tree(s(s(s(s(s(s(s(s(X2)))))))), X3, X4), tree(s(s(s(s(s(s(s(s(X2)))))))), X5, X4)) → U22_GAG(X1, X2, X3, X4, X5, lessF_in_gg(X1, X2))
INSERTA_IN_GAG(s(s(s(s(s(s(s(s(X1)))))))), tree(s(s(s(s(s(s(s(s(X2)))))))), X3, X4), tree(s(s(s(s(s(s(s(s(X2)))))))), X5, X4)) → LESSF_IN_GG(X1, X2)
LESSF_IN_GG(s(X1), s(X2)) → U8_GG(X1, X2, lessF_in_gg(X1, X2))
LESSF_IN_GG(s(X1), s(X2)) → LESSF_IN_GG(X1, X2)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X5, X4)) → U23_GAG(X1, X2, X3, X4, X5, lesscE_in_gg(X1, X2))
U23_GAG(X1, X2, X3, X4, X5, lesscE_out_gg(X1, X2)) → U24_GAG(X1, X2, X3, X4, X5, insertA_in_gag(s(X1), X3, X5))
U23_GAG(X1, X2, X3, X4, X5, lesscE_out_gg(X1, X2)) → INSERTA_IN_GAG(s(X1), X3, X5)
INSERTA_IN_GAG(X1, tree(X2, X3, X4), tree(X2, X3, X5)) → U25_GAG(X1, X2, X3, X4, X5, lessF_in_gg(X2, X1))
INSERTA_IN_GAG(X1, tree(X2, X3, X4), tree(X2, X3, X5)) → LESSF_IN_GG(X2, X1)
INSERTA_IN_GAG(X1, tree(X2, X3, X4), tree(X2, X3, X5)) → U26_GAG(X1, X2, X3, X4, X5, lesscF_in_gg(X2, X1))
U26_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → U27_GAG(X1, X2, X3, X4, X5, insertA_in_gag(X1, X4, X5))
U26_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(X1, X4, X5)
INSERTA_IN_GAG(s(X1), tree(0, X2, X3), tree(0, X2, X4)) → U28_GAG(X1, X2, X3, X4, insertA_in_gag(s(X1), X3, X4))
INSERTA_IN_GAG(s(X1), tree(0, X2, X3), tree(0, X2, X4)) → INSERTA_IN_GAG(s(X1), X3, X4)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) → U29_GAG(X1, X2, X3, X4, X5, lessF_in_gg(X2, X1))
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) → LESSF_IN_GG(X2, X1)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) → U30_GAG(X1, X2, X3, X4, X5, lesscF_in_gg(X2, X1))
U30_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → U31_GAG(X1, X2, X3, X4, X5, insertA_in_gag(s(X1), X4, X5))
U30_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(s(X1), X4, X5)

The TRS R consists of the following rules:

lesscD_in_g(s(X1)) → U50_g(X1, lesscD_in_g(X1))
U50_g(X1, lesscD_out_g(X1)) → lesscD_out_g(s(X1))
lesscE_in_gg(0, s(X1)) → lesscE_out_gg(0, s(X1))
lesscE_in_gg(s(0), s(s(X1))) → lesscE_out_gg(s(0), s(s(X1)))
lesscE_in_gg(s(s(0)), s(s(s(X1)))) → lesscE_out_gg(s(s(0)), s(s(s(X1))))
lesscE_in_gg(s(s(s(0))), s(s(s(s(X1))))) → lesscE_out_gg(s(s(s(0))), s(s(s(s(X1)))))
lesscE_in_gg(s(s(s(s(0)))), s(s(s(s(s(X1)))))) → lesscE_out_gg(s(s(s(s(0)))), s(s(s(s(s(X1))))))
lesscE_in_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1))))))) → lesscE_out_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1)))))))
lesscE_in_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1)))))))) → lesscE_out_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1))))))))
lesscE_in_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2)))))))) → U56_gg(X1, X2, lesscF_in_gg(X1, X2))
lesscF_in_gg(0, s(X1)) → lesscF_out_gg(0, s(X1))
lesscF_in_gg(s(X1), s(X2)) → U55_gg(X1, X2, lesscF_in_gg(X1, X2))
U55_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscF_out_gg(s(X1), s(X2))
U56_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscE_out_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2))))))))

The argument filtering Pi contains the following mapping:
insertA_in_gag(x1, x2, x3)  =  insertA_in_gag(x1, x3)
s(x1)  =  s(x1)
tree(x1, x2, x3)  =  tree(x1, x2, x3)
void  =  void
pB_in_ga(x1, x2)  =  pB_in_ga(x1)
lessD_in_g(x1)  =  lessD_in_g(x1)
lesscD_in_g(x1)  =  lesscD_in_g(x1)
U50_g(x1, x2)  =  U50_g(x1, x2)
lesscD_out_g(x1)  =  lesscD_out_g(x1)
pC_in_ga(x1, x2)  =  pC_in_ga(x1)
0  =  0
lessF_in_gg(x1, x2)  =  lessF_in_gg(x1, x2)
lesscE_in_gg(x1, x2)  =  lesscE_in_gg(x1, x2)
lesscE_out_gg(x1, x2)  =  lesscE_out_gg(x1, x2)
U56_gg(x1, x2, x3)  =  U56_gg(x1, x2, x3)
lesscF_in_gg(x1, x2)  =  lesscF_in_gg(x1, x2)
lesscF_out_gg(x1, x2)  =  lesscF_out_gg(x1, x2)
U55_gg(x1, x2, x3)  =  U55_gg(x1, x2, x3)
INSERTA_IN_GAG(x1, x2, x3)  =  INSERTA_IN_GAG(x1, x3)
U9_GAG(x1, x2, x3)  =  U9_GAG(x1, x3)
PB_IN_GA(x1, x2)  =  PB_IN_GA(x1)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
LESSD_IN_G(x1)  =  LESSD_IN_G(x1)
U1_G(x1, x2)  =  U1_G(x1, x2)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
U4_GA(x1, x2, x3)  =  U4_GA(x1, x3)
U10_GAG(x1, x2, x3)  =  U10_GAG(x1, x3)
PC_IN_GA(x1, x2)  =  PC_IN_GA(x1)
U5_GA(x1, x2, x3)  =  U5_GA(x1, x3)
U6_GA(x1, x2, x3)  =  U6_GA(x1, x3)
U7_GA(x1, x2, x3)  =  U7_GA(x1, x3)
U11_GAG(x1, x2, x3)  =  U11_GAG(x1, x3)
U12_GAG(x1, x2, x3, x4, x5)  =  U12_GAG(x1, x3, x4, x5)
U13_GAG(x1, x2, x3, x4, x5)  =  U13_GAG(x1, x3, x4, x5)
U14_GAG(x1, x2, x3, x4, x5)  =  U14_GAG(x1, x3, x4, x5)
U15_GAG(x1, x2, x3, x4, x5)  =  U15_GAG(x1, x2, x4, x5)
U16_GAG(x1, x2, x3, x4, x5)  =  U16_GAG(x1, x2, x4, x5)
U17_GAG(x1, x2, x3, x4, x5)  =  U17_GAG(x1, x2, x4, x5)
U18_GAG(x1, x2, x3, x4, x5)  =  U18_GAG(x1, x2, x4, x5)
U19_GAG(x1, x2, x3, x4, x5)  =  U19_GAG(x1, x2, x4, x5)
U20_GAG(x1, x2, x3, x4, x5)  =  U20_GAG(x1, x2, x4, x5)
U21_GAG(x1, x2, x3, x4, x5)  =  U21_GAG(x1, x3, x4, x5)
U22_GAG(x1, x2, x3, x4, x5, x6)  =  U22_GAG(x1, x2, x4, x5, x6)
LESSF_IN_GG(x1, x2)  =  LESSF_IN_GG(x1, x2)
U8_GG(x1, x2, x3)  =  U8_GG(x1, x2, x3)
U23_GAG(x1, x2, x3, x4, x5, x6)  =  U23_GAG(x1, x2, x4, x5, x6)
U24_GAG(x1, x2, x3, x4, x5, x6)  =  U24_GAG(x1, x2, x4, x5, x6)
U25_GAG(x1, x2, x3, x4, x5, x6)  =  U25_GAG(x1, x2, x3, x5, x6)
U26_GAG(x1, x2, x3, x4, x5, x6)  =  U26_GAG(x1, x2, x3, x5, x6)
U27_GAG(x1, x2, x3, x4, x5, x6)  =  U27_GAG(x1, x2, x3, x5, x6)
U28_GAG(x1, x2, x3, x4, x5)  =  U28_GAG(x1, x2, x4, x5)
U29_GAG(x1, x2, x3, x4, x5, x6)  =  U29_GAG(x1, x2, x3, x5, x6)
U30_GAG(x1, x2, x3, x4, x5, x6)  =  U30_GAG(x1, x2, x3, x5, x6)
U31_GAG(x1, x2, x3, x4, x5, x6)  =  U31_GAG(x1, x2, x3, x5, x6)

We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 38 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LESSF_IN_GG(s(X1), s(X2)) → LESSF_IN_GG(X1, X2)

The TRS R consists of the following rules:

lesscD_in_g(s(X1)) → U50_g(X1, lesscD_in_g(X1))
U50_g(X1, lesscD_out_g(X1)) → lesscD_out_g(s(X1))
lesscE_in_gg(0, s(X1)) → lesscE_out_gg(0, s(X1))
lesscE_in_gg(s(0), s(s(X1))) → lesscE_out_gg(s(0), s(s(X1)))
lesscE_in_gg(s(s(0)), s(s(s(X1)))) → lesscE_out_gg(s(s(0)), s(s(s(X1))))
lesscE_in_gg(s(s(s(0))), s(s(s(s(X1))))) → lesscE_out_gg(s(s(s(0))), s(s(s(s(X1)))))
lesscE_in_gg(s(s(s(s(0)))), s(s(s(s(s(X1)))))) → lesscE_out_gg(s(s(s(s(0)))), s(s(s(s(s(X1))))))
lesscE_in_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1))))))) → lesscE_out_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1)))))))
lesscE_in_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1)))))))) → lesscE_out_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1))))))))
lesscE_in_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2)))))))) → U56_gg(X1, X2, lesscF_in_gg(X1, X2))
lesscF_in_gg(0, s(X1)) → lesscF_out_gg(0, s(X1))
lesscF_in_gg(s(X1), s(X2)) → U55_gg(X1, X2, lesscF_in_gg(X1, X2))
U55_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscF_out_gg(s(X1), s(X2))
U56_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscE_out_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2))))))))

Pi is empty.
We have to consider all (P,R,Pi)-chains

(8) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LESSF_IN_GG(s(X1), s(X2)) → LESSF_IN_GG(X1, X2)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains

(10) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

LESSF_IN_GG(s(X1), s(X2)) → LESSF_IN_GG(X1, X2)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • LESSF_IN_GG(s(X1), s(X2)) → LESSF_IN_GG(X1, X2)
    The graph contains the following edges 1 > 1, 2 > 2

(13) YES

(14) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LESSD_IN_G(s(X1)) → LESSD_IN_G(X1)

The TRS R consists of the following rules:

lesscD_in_g(s(X1)) → U50_g(X1, lesscD_in_g(X1))
U50_g(X1, lesscD_out_g(X1)) → lesscD_out_g(s(X1))
lesscE_in_gg(0, s(X1)) → lesscE_out_gg(0, s(X1))
lesscE_in_gg(s(0), s(s(X1))) → lesscE_out_gg(s(0), s(s(X1)))
lesscE_in_gg(s(s(0)), s(s(s(X1)))) → lesscE_out_gg(s(s(0)), s(s(s(X1))))
lesscE_in_gg(s(s(s(0))), s(s(s(s(X1))))) → lesscE_out_gg(s(s(s(0))), s(s(s(s(X1)))))
lesscE_in_gg(s(s(s(s(0)))), s(s(s(s(s(X1)))))) → lesscE_out_gg(s(s(s(s(0)))), s(s(s(s(s(X1))))))
lesscE_in_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1))))))) → lesscE_out_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1)))))))
lesscE_in_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1)))))))) → lesscE_out_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1))))))))
lesscE_in_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2)))))))) → U56_gg(X1, X2, lesscF_in_gg(X1, X2))
lesscF_in_gg(0, s(X1)) → lesscF_out_gg(0, s(X1))
lesscF_in_gg(s(X1), s(X2)) → U55_gg(X1, X2, lesscF_in_gg(X1, X2))
U55_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscF_out_gg(s(X1), s(X2))
U56_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscE_out_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2))))))))

Pi is empty.
We have to consider all (P,R,Pi)-chains

(15) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

LESSD_IN_G(s(X1)) → LESSD_IN_G(X1)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains

(17) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

LESSD_IN_G(s(X1)) → LESSD_IN_G(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(19) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • LESSD_IN_G(s(X1)) → LESSD_IN_G(X1)
    The graph contains the following edges 1 > 1

(20) YES

(21) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → U13_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U13_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X2, X4)
INSERTA_IN_GAG(X1, tree(X1, X2, X3), tree(X1, X2, X4)) → U16_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U16_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(X1, X3, X4)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X3), tree(s(X1), X2, X4)) → U19_GAG(X1, X2, X3, X4, lesscD_in_g(X1))
U19_GAG(X1, X2, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X3, X4)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X5, X4)) → U23_GAG(X1, X2, X3, X4, X5, lesscE_in_gg(X1, X2))
U23_GAG(X1, X2, X3, X4, X5, lesscE_out_gg(X1, X2)) → INSERTA_IN_GAG(s(X1), X3, X5)
INSERTA_IN_GAG(X1, tree(X2, X3, X4), tree(X2, X3, X5)) → U26_GAG(X1, X2, X3, X4, X5, lesscF_in_gg(X2, X1))
U26_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(X1, X4, X5)
INSERTA_IN_GAG(0, tree(s(X1), X2, X3), tree(s(X1), X4, X3)) → INSERTA_IN_GAG(0, X2, X4)
INSERTA_IN_GAG(s(X1), tree(0, X2, X3), tree(0, X2, X4)) → INSERTA_IN_GAG(s(X1), X3, X4)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X4), tree(s(X2), X3, X5)) → U30_GAG(X1, X2, X3, X4, X5, lesscF_in_gg(X2, X1))
U30_GAG(X1, X2, X3, X4, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(s(X1), X4, X5)

The TRS R consists of the following rules:

lesscD_in_g(s(X1)) → U50_g(X1, lesscD_in_g(X1))
U50_g(X1, lesscD_out_g(X1)) → lesscD_out_g(s(X1))
lesscE_in_gg(0, s(X1)) → lesscE_out_gg(0, s(X1))
lesscE_in_gg(s(0), s(s(X1))) → lesscE_out_gg(s(0), s(s(X1)))
lesscE_in_gg(s(s(0)), s(s(s(X1)))) → lesscE_out_gg(s(s(0)), s(s(s(X1))))
lesscE_in_gg(s(s(s(0))), s(s(s(s(X1))))) → lesscE_out_gg(s(s(s(0))), s(s(s(s(X1)))))
lesscE_in_gg(s(s(s(s(0)))), s(s(s(s(s(X1)))))) → lesscE_out_gg(s(s(s(s(0)))), s(s(s(s(s(X1))))))
lesscE_in_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1))))))) → lesscE_out_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1)))))))
lesscE_in_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1)))))))) → lesscE_out_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1))))))))
lesscE_in_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2)))))))) → U56_gg(X1, X2, lesscF_in_gg(X1, X2))
lesscF_in_gg(0, s(X1)) → lesscF_out_gg(0, s(X1))
lesscF_in_gg(s(X1), s(X2)) → U55_gg(X1, X2, lesscF_in_gg(X1, X2))
U55_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscF_out_gg(s(X1), s(X2))
U56_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscE_out_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2))))))))

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
tree(x1, x2, x3)  =  tree(x1, x2, x3)
lesscD_in_g(x1)  =  lesscD_in_g(x1)
U50_g(x1, x2)  =  U50_g(x1, x2)
lesscD_out_g(x1)  =  lesscD_out_g(x1)
0  =  0
lesscE_in_gg(x1, x2)  =  lesscE_in_gg(x1, x2)
lesscE_out_gg(x1, x2)  =  lesscE_out_gg(x1, x2)
U56_gg(x1, x2, x3)  =  U56_gg(x1, x2, x3)
lesscF_in_gg(x1, x2)  =  lesscF_in_gg(x1, x2)
lesscF_out_gg(x1, x2)  =  lesscF_out_gg(x1, x2)
U55_gg(x1, x2, x3)  =  U55_gg(x1, x2, x3)
INSERTA_IN_GAG(x1, x2, x3)  =  INSERTA_IN_GAG(x1, x3)
U13_GAG(x1, x2, x3, x4, x5)  =  U13_GAG(x1, x3, x4, x5)
U16_GAG(x1, x2, x3, x4, x5)  =  U16_GAG(x1, x2, x4, x5)
U19_GAG(x1, x2, x3, x4, x5)  =  U19_GAG(x1, x2, x4, x5)
U23_GAG(x1, x2, x3, x4, x5, x6)  =  U23_GAG(x1, x2, x4, x5, x6)
U26_GAG(x1, x2, x3, x4, x5, x6)  =  U26_GAG(x1, x2, x3, x5, x6)
U30_GAG(x1, x2, x3, x4, x5, x6)  =  U30_GAG(x1, x2, x3, x5, x6)

We have to consider all (P,R,Pi)-chains

(22) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(23) Obligation:

Q DP problem:
The TRS P consists of the following rules:

INSERTA_IN_GAG(s(X1), tree(s(X1), X4, X3)) → U13_GAG(X1, X3, X4, lesscD_in_g(X1))
U13_GAG(X1, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X4)
INSERTA_IN_GAG(X1, tree(X1, X2, X4)) → U16_GAG(X1, X2, X4, lesscD_in_g(X1))
U16_GAG(X1, X2, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(X1, X4)
INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X4)) → U19_GAG(X1, X2, X4, lesscD_in_g(X1))
U19_GAG(X1, X2, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X4)
INSERTA_IN_GAG(s(X1), tree(s(X2), X5, X4)) → U23_GAG(X1, X2, X4, X5, lesscE_in_gg(X1, X2))
U23_GAG(X1, X2, X4, X5, lesscE_out_gg(X1, X2)) → INSERTA_IN_GAG(s(X1), X5)
INSERTA_IN_GAG(X1, tree(X2, X3, X5)) → U26_GAG(X1, X2, X3, X5, lesscF_in_gg(X2, X1))
U26_GAG(X1, X2, X3, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(X1, X5)
INSERTA_IN_GAG(0, tree(s(X1), X4, X3)) → INSERTA_IN_GAG(0, X4)
INSERTA_IN_GAG(s(X1), tree(0, X2, X4)) → INSERTA_IN_GAG(s(X1), X4)
INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X5)) → U30_GAG(X1, X2, X3, X5, lesscF_in_gg(X2, X1))
U30_GAG(X1, X2, X3, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(s(X1), X5)

The TRS R consists of the following rules:

lesscD_in_g(s(X1)) → U50_g(X1, lesscD_in_g(X1))
U50_g(X1, lesscD_out_g(X1)) → lesscD_out_g(s(X1))
lesscE_in_gg(0, s(X1)) → lesscE_out_gg(0, s(X1))
lesscE_in_gg(s(0), s(s(X1))) → lesscE_out_gg(s(0), s(s(X1)))
lesscE_in_gg(s(s(0)), s(s(s(X1)))) → lesscE_out_gg(s(s(0)), s(s(s(X1))))
lesscE_in_gg(s(s(s(0))), s(s(s(s(X1))))) → lesscE_out_gg(s(s(s(0))), s(s(s(s(X1)))))
lesscE_in_gg(s(s(s(s(0)))), s(s(s(s(s(X1)))))) → lesscE_out_gg(s(s(s(s(0)))), s(s(s(s(s(X1))))))
lesscE_in_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1))))))) → lesscE_out_gg(s(s(s(s(s(0))))), s(s(s(s(s(s(X1)))))))
lesscE_in_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1)))))))) → lesscE_out_gg(s(s(s(s(s(s(0)))))), s(s(s(s(s(s(s(X1))))))))
lesscE_in_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2)))))))) → U56_gg(X1, X2, lesscF_in_gg(X1, X2))
lesscF_in_gg(0, s(X1)) → lesscF_out_gg(0, s(X1))
lesscF_in_gg(s(X1), s(X2)) → U55_gg(X1, X2, lesscF_in_gg(X1, X2))
U55_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscF_out_gg(s(X1), s(X2))
U56_gg(X1, X2, lesscF_out_gg(X1, X2)) → lesscE_out_gg(s(s(s(s(s(s(s(X1))))))), s(s(s(s(s(s(s(X2))))))))

The set Q consists of the following terms:

lesscD_in_g(x0)
U50_g(x0, x1)
lesscE_in_gg(x0, x1)
lesscF_in_gg(x0, x1)
U55_gg(x0, x1, x2)
U56_gg(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(24) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U13_GAG(X1, X3, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X4)
    The graph contains the following edges 3 >= 2

  • INSERTA_IN_GAG(s(X1), tree(0, X2, X4)) → INSERTA_IN_GAG(s(X1), X4)
    The graph contains the following edges 1 >= 1, 2 > 2

  • INSERTA_IN_GAG(s(X1), tree(s(X1), X4, X3)) → U13_GAG(X1, X3, X4, lesscD_in_g(X1))
    The graph contains the following edges 1 > 1, 2 > 1, 2 > 2, 2 > 3

  • INSERTA_IN_GAG(0, tree(s(X1), X4, X3)) → INSERTA_IN_GAG(0, X4)
    The graph contains the following edges 1 >= 1, 2 > 2

  • U16_GAG(X1, X2, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(X1, X4)
    The graph contains the following edges 1 >= 1, 4 > 1, 3 >= 2

  • INSERTA_IN_GAG(X1, tree(X1, X2, X4)) → U16_GAG(X1, X2, X4, lesscD_in_g(X1))
    The graph contains the following edges 1 >= 1, 2 > 1, 2 > 2, 2 > 3

  • U19_GAG(X1, X2, X4, lesscD_out_g(X1)) → INSERTA_IN_GAG(s(X1), X4)
    The graph contains the following edges 3 >= 2

  • INSERTA_IN_GAG(s(X1), tree(s(X1), X2, X4)) → U19_GAG(X1, X2, X4, lesscD_in_g(X1))
    The graph contains the following edges 1 > 1, 2 > 1, 2 > 2, 2 > 3

  • U23_GAG(X1, X2, X4, X5, lesscE_out_gg(X1, X2)) → INSERTA_IN_GAG(s(X1), X5)
    The graph contains the following edges 4 >= 2

  • INSERTA_IN_GAG(s(X1), tree(s(X2), X5, X4)) → U23_GAG(X1, X2, X4, X5, lesscE_in_gg(X1, X2))
    The graph contains the following edges 1 > 1, 2 > 2, 2 > 3, 2 > 4

  • U26_GAG(X1, X2, X3, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(X1, X5)
    The graph contains the following edges 1 >= 1, 5 > 1, 4 >= 2

  • U30_GAG(X1, X2, X3, X5, lesscF_out_gg(X2, X1)) → INSERTA_IN_GAG(s(X1), X5)
    The graph contains the following edges 4 >= 2

  • INSERTA_IN_GAG(X1, tree(X2, X3, X5)) → U26_GAG(X1, X2, X3, X5, lesscF_in_gg(X2, X1))
    The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3, 2 > 4

  • INSERTA_IN_GAG(s(X1), tree(s(X2), X3, X5)) → U30_GAG(X1, X2, X3, X5, lesscF_in_gg(X2, X1))
    The graph contains the following edges 1 > 1, 2 > 2, 2 > 3, 2 > 4

(25) YES